
\section{Drivers}

\subsection{Keyboard}

\begin{frame}[containsverbatim]
  \frametitle{Fetch Characters Form The Keyboard}
  A host process is created to endlessly fetch a character from \verb|/dev/tty| and send a \verb|SIGIO| to the process running at present (may be the main or one of the containers), and the handler of \verb|SIGIO| does the same work as the corresponding interrupt handler in i386.
\end{frame}

\begin{frame}[containsverbatim]
  \frametitle{Special Characters}
  Special characters will send a signal to the process instead of sending it a character, which can be disabled by \verb|ioctl|.

  \vspace{15pt}

  umUcore currently disabled all special character to raise its corresponding signal except \verb|Ctrl-\|, which can be used to termiate umUcore when it runs abnormally. However, some commonly used special characters act differently. For example, \verb|BackSpace| give the value 008 in qemu while 127 in raw console. And functional keys like DEL, LEFT, etc. act strangely.
\end{frame}